package com.haibo.entity.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @Author : 刘海波
 * @Date: 2025/10/24 11:56
 * @Description: 预问诊病历回写
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@TableName("pre_conclusion_write")
public class PreConclusionRewriteDO implements Serializable {

    /**
     * 主键，自增
     */
    @TableField("id")
    private Integer id;

    /**
     * 门诊预约流水号
     */
    @TableField("register_sn")
    private String registerSn;

    /**
     * 预约号
     */
    @TableField("reservation_no")
    private String reservationNo;

    /**
     * 就诊号
     */
    @TableField("visit_id")
    private String visitId;

    /**
     * 患者标识
     */
    @TableField("pid")
    private String pid;

    /**
     * 患者名
     */
    @TableField("name")
    private String name;

    /**
     * 主诉
     */
    @TableField("chief_complaint")
    private String chiefComplaint;

    /**
     * 现病史
     */
    @TableField("hpi")
    private String hpi;

    /**
     * 既往史
     */
    @TableField("past_history")
    private String pastHistory;

    /**
     * 过敏史
     */
    @TableField("allergy_history")
    private String allergyHistory;

    /**
     * 体格检查
     */
    @TableField("body_check")
    private String bodyCheck;

    /**
     * 辅助检查
     */
    @TableField("assist_check")
    private String assistCheck;

    /**
     * 月经史
     */
    @TableField("menstrual_history")
    private String menstrualHistory;

    /**
     * 婚姻史/婚育史
     */
    @TableField("marital_history")
    private String maritalHistory;

    /**
     * 月经婚姻史
     */
    @TableField("menstrual_marital")
    private String menstrualMarital;

    /**
     * 个人史
     */
    @TableField("personal_his")
    private String personalHis;

    /**
     * 家族史
     */
    @TableField("family_his")
    private String familyHis;

    /**
     * 新增参数-证件号
     */
    @TableField("id_card")
    private String idCard;

    /**
     * 初步诊断
     */
    @TableField("primary_diagnosis")
    private String primaryDiagnosis;

    /**
     * 复诊建议
     */
    @TableField("follow_up_visit")
    private String followUpVisit;

    /**
     * 进一步检验检查
     */
    @TableField("further_examination")
    private String furtherExamination;

    /**
     * 推荐用药
     */
    @TableField("recommended_medication")
    private String recommendedMedication;

    /**
     * 注意事项
     */
    @TableField("precautions")
    private String precautions;

    /**
     * 复诊计划
     */
    @TableField("follow_up_plan")
    private String followUpPlan;

    /**
     * 流行病史
     */
    @TableField("epidemiological_history")
    private String epidemiologicalHistory;

    /**
     * 健康处方
     */
    @TableField("health_prescription")
    private String healthPrescription;

    /**
     * 生育史
     */
    @TableField("childbearing_history")
    private String childbearingHistory;

    /**
     * 评估
     */
    @TableField("medical_assessment")
    private String medicalAssessment;

    /**
     * 备注
     */
    @TableField("remarks")
    private String remarks;

    /**
     * 产检信息
     */
    @TableField("prenatal_checkup_info")
    private String prenatalCheckupInfo;

    /**
     * 问诊报告列表
     */
    @TableField("standard_report_infos")
    private String standardReportInfos;

    /**
     * 场景<br>
     * none_regist: 无挂号/就诊数据<br>
     * first_aid: 急救场景. 这个场景下患者信息非必须,无挂号/就诊数据
     */
    @TableField("scenario")
    private String scenario;

    /**
     * 患者映射id. 用来标识患者唯一信息.例如 急救id
     */
    @TableField("mapping_uniq_id")
    private String mappingUniqId;

    /**
     * 预问诊记录id
     */
    @TableField("record_id")
    private String recordId;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 逻辑删除标识，0：未删除、1：已删除
     */
    @TableField("status")
    private Integer status;

}
